package com.gxuwz.service;

import com.gxuwz.entity.Classes;
import com.gxuwz.entity.Department;
import com.gxuwz.entity.vo.PageVo;
import com.gxuwz.result.PageInfo;

import java.util.List;

/**
 * @Description:班级相关操作的服务接口
 */

public interface ClassesService {
    /**
     * @Description:得到班级列表
     * @Param:  [com.gxuwz.entity.Classes, com.gxuwz.result.PageInfo]
     * @Return: com.gxuwz.entity.vo.PageVo
     */
    public PageVo getClassesList(Classes classes, PageInfo pageInfo,String instID);

    /**
     * @Description:通过班级编号得到一条班级记录信息
     * @Param:  [java.lang.String]
     * @Return: com.gxuwz.entity.Classes
     */

    public Classes getClassesOne(String classId);

    /**
     * @Description:添加一条班级记录信息
     * @Param:  [com.gxuwz.entity.Classes]
     * @Return: boolean
     */

    public boolean addClassesInfo(Classes classes);

    /**
     * @Description:更新班级信息记录
     * @Param:  [com.gxuwz.entity.Classes, java.lang.String]
     * @Return: boolean
     */

    public boolean updateClassesInfo(Classes classes,String oldId);

    /**
     * @Description:通过班级编号，删除一条班级记录信息
     * @Param:  [java.lang.String]
     * @Return: boolean
     */

    public boolean deleteClassesOne(String classId);

    /**
     * @Description:查询所有的班级记录
     * @Param:  []
     * @Return: java.util.List<java.lang.String>
     */

    public List<String> selectClassesIds();

    /**
     * @Description:获取所有的班级编号和班级名称
     * @Param:  []
     * @Return: java.util.List<com.gxuwz.entity.Classes>
     */
    public List<Classes> queryClassesIdAndClassName(String instID);

    /**
     * @Description:获取所有的年级
     * @Param:  []
     * @Return: java.util.List<java.lang.String>
     */
    public List<String> getClassGrades(String instID);

    /**
     * @Description:获得所有的专业
     * @Param:  []
     * @Return: java.util.List<java.lang.String>
     */
    public List<String> getMajors(String instID);

    /**
     * @Description:通过学院编号，判断班级是否被逻辑删除
     * @Param:  [java.lang.String]
     * @Return: boolean
     */

    boolean selectClassesExist(String depId);

    /**
     * @Description:通过辅导员编号，判断班级是否被逻辑删除
     * @Param:  [java.lang.String]
     * @Return: boolean
     */

    boolean selectClassesExistByInstID(String instId);

    List<String> selectClassesIdsNoDel();
}
